package com.sztx.pay.center.rpc.api.service;

import java.util.Date;
import java.util.List;

import com.sztx.pay.center.rpc.api.domain.FinanceCollectResponse;
import com.sztx.pay.center.rpc.api.domain.PageModelResponse;
import com.sztx.pay.center.rpc.api.domain.PlatformTradeFlowHbaseResp;
import com.sztx.pay.center.rpc.api.domain.PlatformTradeFlowResponse;
import com.sztx.pay.center.rpc.api.domain.TradeFlowListResponse;
import com.sztx.pay.center.rpc.api.domain.TradeOrderListResponse;
import com.sztx.pay.center.rpc.api.domain.TradeOrderRequest;
import com.sztx.pay.center.rpc.api.domain.TypeCodeNameResponse;
import com.sztx.pay.center.rpc.api.domain.request.PlatformTradeFlowHbaseRequest;
import com.sztx.pay.center.rpc.api.domain.request.PlatformTradeFlowRequest;

public interface FinanceRpcService {
	List<FinanceCollectResponse> queryFinanceByTime(String accountId, Date startDate, Date endDate);

	/**
	 * 查询用户流水
	 */
	TradeFlowListResponse queryUserTradeFlow(String accountId, String startDate, String endDate, int pageNo, int pageSize);

	/**
	 * 查询平台流水
	 */
	TradeFlowListResponse queryPlatformTradeFlow(String accountId, String startDate, String endDate, int pageNo, int pageSize, String businessType);

	/**
	 * 查询平台流水(新)
	 * @param actType 
	 * @param userType 
	 */
	PageModelResponse<PlatformTradeFlowResponse> queryPlatformTradeFlow(PlatformTradeFlowRequest request, Integer pageNo, Integer pageSize, Integer actType, Integer userType);

	/**
	 * 查询交易订单
	 * 
	 * @return
	 */
	TradeOrderListResponse queryTradeOrder(TradeOrderRequest tradeOrderRequest);

	/**
	 * 查询所有业务类型及描述
	 */
	List<TypeCodeNameResponse> getAllBusinessType();

	/**
	 * 查询所有支付方式类型及描述
	 */
	List<TypeCodeNameResponse> getAllPayType();
	
	PlatformTradeFlowHbaseResp queryTradeFlowByHbase(PlatformTradeFlowHbaseRequest request, Integer pageSize, Integer actType, Integer userType);
}
